package com.xxxtea.common.anno;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 仅反序列化注解
 * 
 * 标记字段只能进行反序列化（接收前端数据），不能序列化（返回给前端）。
 * 适用于密码、敏感信息等字段，防止数据泄露。
 * 同时标记为MyBatis-Plus的非数据库字段。
 * 
 * @author badman
 * @since 1.0.0
 */
@TableField(exist = false)
@JacksonAnnotationsInside
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface DeserializeOnly {

}